package com.idudiao.sc.common.log.feign;

import com.dhcc.aml.common.core.dto.cust.Td00CustAllInfoDTO;
import com.dhcc.aml.common.core.dto.cust.Td47CustBasicInfoDTO;
import com.dhcc.aml.common.core.dto.log.MQLogDTO;
import com.dhcc.aml.common.core.dto.log.OperationLogDTO;
import com.dhcc.aml.common.core.dto.transaction.AcctDTO;
import com.dhcc.aml.common.core.dto.transaction.TransactionAndAcctInfoDTO;
import com.dhcc.aml.common.core.dto.transaction.TransactionDTO;
import com.dhcc.aml.common.core.msg.ObjectRestResponse;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.util.List;

/**
 * @author songyinyin
 * @since 2019/1/15 14:15
 */
@Slf4j
@Component
public class BasicFeignFallbackFactoryImpl implements BasicFeign {

    @Setter
    private Throwable cause;

    /**
     * 查询单个对象
     *
     * @param id
     */
    @Override
    public ObjectRestResponse get(String id) {
        return null;
    }

    /**
     * 交易服务查询
     *
     * @param transactionKey
     * @return
     */
    @Override
    public TransactionDTO getTransaction(String transactionKey) {
        return null;
    }

    /**
     * 根据areaKey值查找相应的省市县级代码
     *
     * @param areaKey
     * @return
     */
    @Override
    public List<String> getAreaDictCode(String areaKey) {
        return null;
    }

    /**
     * 根据涉外收支交易代码查找相应的级别代码
     *
     * @param tsctKey
     * @return
     */
    @Override
    public List<String> getTsctDictCode(String tsctKey) {
        return null;
    }

    /**
     * 根据交易方式代码查找相应的级别代码
     *
     * @param gjfsKey
     * @return
     */
    @Override
    public List<String> getGjfsDictCode(String gjfsKey) {
        return null;
    }

    /**
     * 根据areaKey值查找相应的省市县级代码，返回一个string类型
     *
     * @param areaKey
     * @return
     */
    @Override
    public String getAreaDictCodeByAreaKey(String areaKey) {
        return null;
    }

    /**
     * 保存单个对象
     *
     * @param dto 日志对象
     * @return
     */
    @Override
    public ObjectRestResponse add(OperationLogDTO dto) {
        log.error("feign 插入日志失败", cause);
        return null;
    }

    /**
     * 保存或更新MQ日志
     *
     * @param dto 日志对象
     * @return
     */
    @Override
    public ObjectRestResponse saveOrUpdateMQLog(MQLogDTO dto) {
        return null;
    }


    @Override
    public List<OperationLogDTO> getLogInfoByTargetKey(String targetKey) {
        return null;
    }

    /**
     * 根据字典类型查询字典码表数据
     *
     * @param type
     * @return
     */
    @Override
    public Object dicArray(String type) {
        return null;
    }

    /**
     * 根据字典类型和字典代码查询字典名称
     *
     * @param type 字典类型
     * @param code 字典代码
     * @return
     */
    @Override
    public String getNameByPbcCode(String type, String code) {
        return null;
    }

    /**
     * 根据字典类型和字典代码查询字典名称
     *
     * @param type 字典类型
     * @param code 字典代码
     * @return
     */
    @Override
    public String getNameByDicCode(String type, String code) {
        return null;
    }

    /**
     * 根据账号查询账户信息
     *
     * @param acctNo
     * @return
     */
    @Override
    public AcctDTO getAcct(String acctNo) {
        return null;
    }

    /**
     * xyn：根据客户号或者客户证件类型和证件号码查询一个客户的相关信息
     *
     * @param dto
     * @return
     */
    @Override
    public Td00CustAllInfoDTO getCustAllInfo(Td47CustBasicInfoDTO dto) {
        return null;
    }

    /**
     * xyn：获得一段时间的客户下账户全部交易信息
     *
     * @param dto
     * @return
     */
    @Override
    public TransactionAndAcctInfoDTO getTransactionAllInfo(Td47CustBasicInfoDTO dto) {
        return null;
    }

    /**
     * 根据源货币代码获得与美元的汇率
     *
     * @param erSCode
     * @return
     */
    @Override
    public Double getExchangeRate(String erSCode) {
        return null;
    }

    /**
     * 人民币与美元的汇率
     *
     * @return
     */
    @Override
    public Double getExchangeRateByCNY() {
        return null;
    }

    /**
     * 查询当前时间在dayNum后的工作日
     *
     * @param dayNum
     * @return
     */
    @Override
    public String getWorkday(Integer dayNum) {
        return null;
    }

    /**
     * 查询n天之前的工作日list
     * @param dayNum
     * @return
     */
    @Override
    public List<LocalDate> getBeforeWorkday(Integer dayNum) {
        return null;
    }
}
